package com.itfenghuang.day07;

import java.util.*;
@SuppressWarnings("all")
public class A06_TreeMap {
    public static void main(String[] args) {
        /**
         * 1.概念
         *      底层使用的是红黑树结构
         *      依赖于自然排序 或  比较器排序,对键进行排序
         *      如果存储自定义对象,可以使用自然或比较器 进行指定排序规则
         * 2.案列
         *      创建一个TreeMap集合, 学生对象 国籍  ,name age
         *      按照年龄进行排序升序, 年龄相同按照 name 排序
         *
         *作业: 修改成选择器排序
         *  一个字符串,统计该字符串中每个字母出现的次数
         *
         */
        TreeMap<Student, String> map = new TreeMap<>(new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                int i=o1.getAge()-o2.getAge();
                int i1 = i == 0 ? o1.getName().compareTo(o2.getName()) : i;
                return i;
            }
        });
        map.put(new Student("小美",17),"中国");
        map.put(new Student("小七",15),"美国");
        map.put(new Student("强尼",35),"英国");
        map.put(new Student("肉松",23),"韩国");
//        System.out.println(map);
        //遍历
        Set<Student> set = map.keySet();
        for (Student student : set) {
            String s = map.get(student);
            System.out.println(student+" "+s);
        }
        Set<Map.Entry<Student, String>> entries = map.entrySet();
        Iterator<Map.Entry<Student, String>> iterator = entries.iterator();
        while (iterator.hasNext()){
            Map.Entry<Student, String> next = iterator.next();
            String value = next.getValue();
            Student key = next.getKey();
            System.out.println(value+" "+key);
        }

    }
}
